package cn.wen.javax.crypto;

/**
 * Title：加密/解密相关操作（接口）
 * <p>
 * Description：提供加密/解密处理。
 * <p>
 * Copyright：Copyright (c) 2010-2012
 * 
 * @author <a href="mailto:ct_wen@qq.com">ctwen</a>, 温承瑭
 * @version Revision：1.0 Date：2012/7/13 Description：初完成。
 *          <p>
 */
public interface ICipher extends Encryptable, Decryptable {

    /**
     * @return 转换的名称
     */
    String getTransformation();

    /**
     * 设置算法的转换方式。
     * 
     * @param transformation 转换的名称
     */
    void setTransformation(String transformation);

    /**
     * @return 密钥算法的标准名称
     */
    String getAlgorithm();

    /**
     * 设置密钥算法。
     * 
     * @param algorithm 密钥算法的标准名称
     */
    void setAlgorithm(String algorithm);

    /**
     * @return 密匙
     */
    byte[] getKey();

    /**
     * 设置密匙，注：长度必需为8的整数倍。
     * 
     * @param key 密匙。
     */
    void setKey(byte[] key);

}
